home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / catD / msgb.z / msgb
Encoding:
Text File  |  2002-10-03  |  7.7 KB  |  133 lines

  1.  
  2.  
  3.  
  4. mmmmssssggggbbbb((((DDDD4444))))                                                              mmmmssssggggbbbb((((DDDD4444))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _mmmm_ssss_gggg_bbbb - STREAMS message block structure
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_tttt_yyyy_pppp_eeee_ssss_...._hhhh_>>>>
  13.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>>
  14.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_yyyy_ssss_////_dddd_dddd_iiii_...._hhhh_>>>>
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      A STREAMS message is made up of one or more message blocks, referenced by
  18.      a pointer to a _mmmm_ssss_gggg_bbbb structure.  When a message is on a queue, all fields
  19.      are read-only to drivers and modules.
  20.  
  21. UUUUSSSSAAAAGGGGEEEE
  22.    SSSSttttrrrruuuuccccttttuuuurrrreeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  23.      The _mmmm_ssss_gggg_bbbb structure is defined as type _mmmm_bbbb_llll_kkkk______tttt and contains the following
  24.      members:
  25.  
  26.      _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb   _****_bbbb______nnnn_eeee_xxxx_tttt_;;;;   _////_**** _nnnn_eeee_xxxx_tttt _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _oooo_nnnn _qqqq_uuuu_eeee_uuuu_eeee _****_////
  27.      _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb   _****_bbbb______pppp_rrrr_eeee_vvvv_;;;;   _////_**** _pppp_rrrr_eeee_vvvv_iiii_oooo_uuuu_ssss _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _oooo_nnnn _qqqq_uuuu_eeee_uuuu_eeee _****_////
  28.      _ssss_tttt_rrrr_uuuu_cccc_tttt _mmmm_ssss_gggg_bbbb   _****_bbbb______cccc_oooo_nnnn_tttt_;;;;   _////_**** _nnnn_eeee_xxxx_tttt _bbbb_llll_oooo_cccc_kkkk _iiii_nnnn _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _****_////
  29.      _uuuu_cccc_hhhh_aaaa_rrrr______tttt       _****_bbbb______rrrr_pppp_tttt_rrrr_;;;;   _////_**** _1111_ssss_tttt _uuuu_nnnn_rrrr_eeee_aaaa_dddd _dddd_aaaa_tttt_aaaa _bbbb_yyyy_tttt_eeee _oooo_ffff _bbbb_uuuu_ffff_ffff_eeee_rrrr _****_////
  30.      _uuuu_cccc_hhhh_aaaa_rrrr______tttt       _****_bbbb______wwww_pppp_tttt_rrrr_;;;;   _////_**** _1111_ssss_tttt _uuuu_nnnn_wwww_rrrr_iiii_tttt_tttt_eeee_nnnn _dddd_aaaa_tttt_aaaa _bbbb_yyyy_tttt_eeee _oooo_ffff _bbbb_uuuu_ffff_ffff_eeee_rrrr _****_////
  31.      _ssss_tttt_rrrr_uuuu_cccc_tttt _dddd_aaaa_tttt_aaaa_bbbb  _****_bbbb______dddd_aaaa_tttt_aaaa_pppp_;;;;  _////_**** _pppp_oooo_iiii_nnnn_tttt_eeee_rrrr _tttt_oooo _dddd_aaaa_tttt_aaaa _bbbb_llll_oooo_cccc_kkkk _****_////
  32.      _uuuu_cccc_hhhh_aaaa_rrrr______tttt       _bbbb______bbbb_aaaa_nnnn_dddd_;;;;    _////_**** _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee _pppp_rrrr_iiii_oooo_rrrr_iiii_tttt_yyyy  _****_////
  33.      _uuuu_ssss_hhhh_oooo_rrrr_tttt______tttt      _bbbb______ffff_llll_aaaa_gggg_;;;;    _////_**** _uuuu_ssss_eeee_dddd _bbbb_yyyy _ssss_tttt_rrrr_eeee_aaaa_mmmm _hhhh_eeee_aaaa_dddd  _****_////
  34.      The _bbbb______nnnn_eeee_xxxx_tttt and _bbbb______pppp_rrrr_eeee_vvvv pointers are used to link messages together on a
  35.      _qqqq_uuuu_eeee_uuuu_eeee(D4).  These fields can be used by drivers and modules to create
  36.      linked lists of messages.
  37.  
  38.      The _bbbb______cccc_oooo_nnnn_tttt pointer links message blocks together when a message is
  39.      composed of more than one block.  Drivers and modules can use this field
  40.      to create complex messages from single message blocks.
  41.  
  42.      The _bbbb______rrrr_pppp_tttt_rrrr and _bbbb______wwww_pppp_tttt_rrrr pointers describe the valid data region in the
  43.      associated data buffer.  The _bbbb______rrrr_pppp_tttt_rrrr field points to the first unread byte
  44.      in the buffer and the _bbbb______wwww_pppp_tttt_rrrr field points to the next byte to be written
  45.      in the buffer.
  46.  
  47.      The _bbbb______dddd_aaaa_tttt_aaaa_pppp field points to the data block [see _dddd_aaaa_tttt_aaaa_bbbb(D4)] associated
  48.      with the message block.  This field should never be changed by modules or
  49.      drivers.
  50.  
  51.      The _bbbb______bbbb_aaaa_nnnn_dddd field contains the priority band associated with the message.
  52.      Normal priority messages and high priority messages have _bbbb______bbbb_aaaa_nnnn_dddd set to
  53.      zero.  High priority messages are high priority by virtue of their
  54.      message type.  This field can be used to alter the queuing priority of
  55.      the message.  The higher the priority band, the closer to the head of the
  56.      queue the message is placed.
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. mmmmssssggggbbbb((((DDDD4444))))                                                              mmmmssssggggbbbb((((DDDD4444))))
  71.  
  72.  
  73.  
  74.      The _bbbb______ffff_llll_aaaa_gggg field contains a bitmask of flags that can be set to alter the
  75.      way the stream head will process the message.  Valid flags are:
  76.  
  77.      _MMMM_SSSS_GGGG_MMMM_AAAA_RRRR_KKKK       The last byte in the message is ``marked.''  This condition
  78.                    is testable from user level via the _IIII______AAAA_TTTT_MMMM_AAAA_RRRR_KKKK _iiii_oooo_cccc_tttt_llll(2).
  79.  
  80. RRRREEEEFFFFEEEERRRREEEENNNNCCCCEEEESSSS
  81.      _aaaa_llll_llll_oooo_cccc_bbbb(D3), _dddd_aaaa_tttt_aaaa_bbbb(D4), _eeee_ssss_bbbb_aaaa_llll_llll_oooo_cccc(D3), _ffff_rrrr_eeee_eeee_bbbb(D3), _ffff_rrrr_eeee_eeee______rrrr_tttt_nnnn(D4),
  82.      _mmmm_eeee_ssss_ssss_aaaa_gggg_eeee_ssss(D5)
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.